package logicaBancoDeDados;

import classes.Conector;
import classes.Distribuidor;
import java.sql.*;
import java.util.ArrayList;
import javax.swing.JOptionPane;

public class ConectaDistribuidor {

    public boolean cond = false;
    public Conector conect = new Conector();
    public PreparedStatement prest = null;
    public String sql = null;
    public ResultSet rs = null;
    public ArrayList<Distribuidor> listaDistribuidor = new ArrayList<Distribuidor>();

    public ConectaDistribuidor() {
    }

    public void insere(Distribuidor distribuidor) {
        try {
            sql = "insert into distribuidoras (nome,endereco,telefone) VALUES (?,?,?)";
            prest = conect.conn.prepareStatement(sql);
            prest.setString(1, distribuidor.getDistribuidor());
            prest.setString(2, distribuidor.getEndereco());
            prest.setString(3, distribuidor.getTelefone());
            prest.executeUpdate();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    public void remove(Distribuidor distribuidor) {
        try {
            sql = "delete from distribuidoras where id = ?";
            prest = conect.conn.prepareStatement(sql);
            prest.setInt(1, distribuidor.getId());
            prest.executeQuery();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    public void altera(Distribuidor distribuidor) {
        try {
            sql = "UPDATE distribuidoras set nome =?, telefone = ?, endereco = ? where id = ?";
            prest = conect.conn.prepareStatement(sql);
            prest.setString(1, distribuidor.getDistribuidor());
            prest.setString(2, distribuidor.getTelefone());
            prest.setString(3, distribuidor.getEndereco());
            prest.executeQuery();
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        }
    }

    public ArrayList<Distribuidor> listAll() {
        sql = "select * from distribuidoras";
        try {
            prest = conect.conn.prepareCall(sql);
            rs = prest.executeQuery();
            while (rs.next()) {
                Distribuidor distribuidor = new Distribuidor();
                distribuidor.setId(rs.getInt("id"));
                distribuidor.setDistribuidor(rs.getString("nome"));
                distribuidor.setEndereco(rs.getString("endereco"));
                distribuidor.setTelefone(rs.getString("telefone"));
                listaDistribuidor.add(distribuidor);
            }
            return listaDistribuidor;
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        }
        return listaDistribuidor;
    }

    public boolean isCadastrado(Distribuidor distribuidor) {
        boolean cond = false;
        try {
            sql = "select * from distribuidoras where nome = ?";
            prest = conect.conn.prepareStatement(sql);
            prest.setString(1,distribuidor.getDistribuidor());
            rs = prest.executeQuery();
            if(rs.next()){
                cond = true;
            }
        } catch (SQLException e) {
            JOptionPane.showMessageDialog(null, e);
        }
        return cond;
    }
}
